package initialize

import (
	sentinel "github.com/alibaba/sentinel-golang/api"
	"github.com/alibaba/sentinel-golang/core/flow"
	"go.uber.org/zap"
)

// InitSentinel 初始化限流
func InitSentinel() {

	err := sentinel.InitDefault()
	if err != nil {
		zap.S().Fatal("初始化sentinel异常: ", err)
	}

	// 配置限流规则
	_, err = flow.LoadRules([]*flow.Rule{
		{
			Resource:               "goods-list", // 我们暂时只给goods的List接口添加这个模块
			TokenCalculateStrategy: flow.Direct,
			ControlBehavior:        flow.Reject, // 直接拒绝
			Threshold:              100,         // 10个流量
			StatIntervalInMs:       1000,        // 1秒钟
		},
		// 其他的规则
	})
	if err != nil {
		zap.S().Fatal("配置限流规则失败: ", err)
	}

}
